/**
  *@File文件:BillMapper.java
  *@Date日期:2017年7月14日 上午9:17:36
  *@Copyright版权:Corporation 2017
  */
package com.qiaomengapp.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.qiaomengapp.bean.Bill;
import com.qiaomengapp.bean.BillDetailMessage;
import com.qiaomengapp.bean.Provider;

/**
 * @Description描述:
 * @Author作者 wangzongwen
 * @Date日期:2017年7月14日
 */
public interface BillMapper {

	/**
	 *@Description描述: 增加一条订单
	 *@param bill 一条订单信息
	 *@return
	 *@return int 影响的行数
	 */
	int insertBill(Bill bill);

	
	/**
	 *@Description描述: 修改订单状态
	 *@param status   要修改的状态
	 *@param billCode 要修改状态的订单编号
	 *@return
	 *@return int 影响的行数
	 */
	int updateBillStatus(@Param("status") int status, @Param("billCode") String billCode);
	
	/**
	 *@Description描述: 通过订单编号查询供货商信息
	 *@param billCode 要进行查询的订单编号
	 *@return
	 *@return Provider 查询到的供货商信息
	 */
	Provider selectProviderByBillCode(String billCode);
	
	/**
	 *@Description描述: 通过订单编号查询商家 订单详细信息
	 *@param billCode 要查询的订单编号
	 *@return
	 *@return BillDetailMessage 查询到的订单信息
	 */
	List<BillDetailMessage> selectDistributionBillByBillCode(String billCode);
	
	/**
	 *@Description描述: 通过订单编号查询用户订单详细信息
	 *@param billCode  订单编号
	 *@return
	 *@return List<BillDetailMessage> 查询到的订单详情集合
	 */
	List<BillDetailMessage> selectBillDetailByBillCode(String billCode);
	
	/**
	 *@Description描述: 根据订单状态筛选订单
	 *@param status 要筛选的订单状态
	 *@param userId 查询订单的用户
	 *@return
	 *@return List<Bill> 符合这个状态的订单集合
	 */
	List<Bill> selectBillByStatus(@Param("status")Integer status,@Param("userId") int userId);
	
	
	/**
	 *@Description描述: 通过订单编号查询订单
	 *@param billCode 订单编号
	 *@return
	 *@return Bill 查询到的订单对象
	 */
	Bill selectBillByCode(String billCode);
}
